package PaqServidor;

//import PaqCORBA.RespuestaPosible;
import PaqServidor.Asignatura;
import PaqServidor.ExamenProfesor;
import PaqServidor.Pregunta;
import java.util.ArrayList;
import java.util.Calendar;

public class Profesor extends Usuario {
    public ArrayList<ExamenProfesor> listaExProf = new ArrayList<ExamenProfesor>();
        
    Profesor()
    {
        tipo = "Profesor";
    }
    Profesor(String us, String pass, String n) 
    {
        user = us;
        password = pass;
        nombre = n;
        tipo = "Profesor";
    }

    public void addPregunta(String enunciado, short numRespuestas, PaqCORBA.RespuestaPosible[] respuestas, String tema, String asig) 
    {
        Pregunta p;
        Tema t = new Tema();
        Asignatura a;
        int tam = respuestas.length;
        ArrayList<RespuestaPosible> R = new ArrayList<RespuestaPosible>();
        
        // Creamos el array de respuestas
        for ( int i = 0; i<tam; i++ )
        {
            R.add(new RespuestaPosible(respuestas[i].descripcion, respuestas[i].correcta));
        }
        a = findAsignatura(asig);
        t = a.findTema(tema);
        // Creamos la pregunta
        p = new Pregunta(enunciado, R);
        
        //listaPreguntas.add(p);
        t.listaPreguntas.add(p);
        
        
    }

    public void editPregunta (String asig, String old_enunciado, String new_enunciado, short numRespuestas, String[] respuestas, boolean[] oks, String tema) {
        Asignatura a = this.findAsignatura(asig);
        a.editPregunta(old_enunciado, new_enunciado, numRespuestas, respuestas, oks, tema);
    }

    
    public void borrarPregunta(String asignatura, String tema, String pregunta) {
        Asignatura asig ;
        Tema t;
        boolean encontrado = false;
        int i=0;
        System.out.println("borrarPregunta: listaasig " + lasignaturas.size());
        //for(int i=0;i<prof.lasignaturas.size();i++)
        while(i < lasignaturas.size() && encontrado == false)
        {
            if ( asignatura.equals(lasignaturas.get(i).getNombre()))
                encontrado=true;
            else
                i++;      
        }
        if(encontrado)
        {
            asig =lasignaturas.get(i);
            t = asig.findTema(tema);
            encontrado = false;
            while(encontrado == false)
            {
                if(t.listaPreguntas.get(i).getEnunciado().equals(pregunta))
                {
                    encontrado = true;
                    t.listaPreguntas.remove(i);
                }
                else
                    i++;
                  
            }
            
        }
    }

    public ExamenProfesor ponerExamen(String fechaIni, String fechaFin, short numPreguntas, String asignatura, String[] temas) 
    {
        Asignatura a = findAsignatura(asignatura);
        ArrayList <Pregunta> preguntas = new ArrayList<Pregunta>();
        for ( int i=0; i< temas.length; i++ )
        {
            Tema t = a.findTema(temas[i]);
            if ( t != null )
                for ( Pregunta p : t.listaPreguntas )
                    preguntas.add(p);
        }
        ExamenProfesor ex = new ExamenProfesor(fechaIni, fechaFin, numPreguntas, asignatura, preguntas);
        listaExProf.add(ex);
        return ex;
    }
}